﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ContactManager.Models.Entities;

namespace ContactManager.Models
{
    public interface IContactManagerRepository
    {
        //CONTACT methods
        Contact GetContact(System.Guid id);
        //Contact GetContact(int id, bool newCMMDC);
        IEnumerable<Contact> ListContacts();
        void Add(Contact contactToCreate);
        IQueryable<Contact> FindAllContacts();
        IQueryable<Contact> FindTodayContacts();
        void Delete(Contact contactToDelete);
        void EditContact(Contact contactToUpdate);
        void Save();


        // ContactGroup methods
        ContactGroup CreateGroup(ContactGroup groupToCreate);
        IEnumerable<ContactGroup> ListGroups();
        IQueryable<ContactGroup> FindAllGroups();
        ContactGroup GetGroup(System.Guid groupId);
        ContactGroup GetFirstGroup();
        void DeleteGroup(ContactGroup groupToDelete);
        ContactGroup EditGroup(ContactGroup groupToUpdate);
    }
}
